class Article {
    // 初始值
    public title: string   // 公有 
    content: string
    aaa?: string  // 表示可选
    bbb = 100  // 固定值
    private tempData?: string // 表示私有，可选 只能在当前类使用
    protected innerData?: string

    static author: string  // 静态属性
    private static readonly main: number = 1 // 私有静态属性   表示只能在当前类使用且是静态 且是只读属性
    // 构造器
    constructor(title: string, content: string) {
        this.title = title
        this.content = content
        // Article.main = 1 // 报错，因为是只读
    }
}


const A = new Article('标题', '内容')
console.log(A)
// A.author // 报错 属性“author”在类型“Article”上不存在。 其属于静态资源
Article.author  // 静态属性只能这样访问
// A.tempData // 会报错的原因就是因为是私有的，只能在 Article类 中使用
// A.innerData // 会报错的原因是 属性“innerData”受保护，只能在类“Article”及其子类中访问。

class B extends Article {   // 定义B类且继承Article数据
    constructor(title: string, content: string) {
        super(title, content)  // 派生类的构造函数必须包含 "super" 调用。
        console.log(this.innerData) // 正确，因为 innerData 是受保护的成员
        // console.log(this.tempData)  // 报错 私有的
    }
}